﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestorDeFlotasDesktop.UILogic;
using GestorDeFlotasModelo.Factorias;
using GestorDeFlotasModelo.Entities;

namespace GestorDeFlotasDesktop.RegistrarViaje
{
    public enum Modo
    {
        Chequeo,
        Registro
    }
    public partial class ChequeoInconsistencias : BaseForm
    {
        RegistrarViajes r;
        public ChequeoInconsistencias()
        {
            InitializeComponent();
        }

        protected override void OnVisibleChanged(EventArgs e)
        {
            try
            {
                base.OnVisibleChanged(e);
                this.btnEliminarInconsistencia.Visible = true;
                this.btnModificarInconsistencia.Visible = true;
                this.CargarViajes();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


        private void CargarViajes()
        {
            try
            {
                dgvInconsistentes.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                dgvInconsistentes.DataSource = Transaccion.Factoria<FactoriaViaje>().SelectInconsistentes();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void btnEliminarInconsistencia_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult res = MessageBox.Show("Esta seguro que desea eliminar este registro de viaje?", "Viaje", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (res != DialogResult.Yes)
                    return;
                Transaccion.Factoria<FactoriaViaje>().Eliminar(dgvInconsistentes.SelectedRows[0].DataBoundItem as Persistencia.IPersistibleModelo);
                ((List<Viaje>)dgvInconsistentes.DataSource).RemoveAt(dgvInconsistentes.SelectedRows[0].Index);
                //this.CargarViajes();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void btnGuardarCambios_Click(object sender, EventArgs e)
        {
            try
            {
                Transaccion.Persistir();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void btnModificarInconsistencia_Click(object sender, EventArgs e)
        {
            try
            {
                r = new RegistrarViajes(dgvInconsistentes.SelectedRows[0].DataBoundItem as Viaje);
                r.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                this.CargarViajes();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

    }
}
